Conditions | 6 |
Paths | 10 |
Total Lines | 32 |
Lines | 0 |
Ratio | 0 % |
Changes | 2 | ||
Bugs | 0 | Features | 0 |
1 | var parse_host = function(host){ |
||
2 | /** global: tlds */ |
||
3 | if(typeof tlds === "undefined"){ |
||
4 | throw new Error('No TLDs!'); |
||
5 | } |
||
6 | |||
7 | var parts = host.split("."); |
||
8 | var stack = ""; |
||
9 | var tld_level = 1; //unknown tld are 1st level |
||
10 | for(var i=parts.length-1, part;i>=0;i--){ |
||
11 | part = parts[i]; |
||
12 | stack = stack ? part + "." + stack : part; |
||
13 | if(!tlds[stack]){ |
||
14 | break; |
||
15 | } |
||
16 | tld_level = tlds[stack]; |
||
17 | } |
||
18 | if(parts.length <= tld_level ) { |
||
19 | return { |
||
20 | tld: null, |
||
21 | domain: host |
||
22 | }; |
||
23 | } else { |
||
24 | return { |
||
25 | tld : parts.slice(-tld_level).join('.'), |
||
26 | domain : parts.slice(-tld_level-1).join('.'), |
||
27 | sub : parts.slice(0, (-tld_level-1)).join('.'), |
||
28 | }; |
||
29 | } |
||
30 | |||
31 | |||
32 | }; |